package com.helin.helinhealth.entity;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableLogic;
import com.baomidou.mybatisplus.annotation.TableName;
import java.io.Serializable;
import java.time.LocalDateTime;

import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;

/**
 * <p>
 * 紧急呼叫记录表实体类
 * </p>
 * 
 * <p>
 * 该实体类对应数据库中的 emergency_call 表，用于存储老人发起的紧急救助请求，
 * 包括呼叫位置、处理状态等信息。系统会根据紧急呼叫向关联的子女发送通知，
 * 实现老人遇到紧急情况时的快速救助机制。
 * </p>
 *
 * @author HuangHaihang
 * @since 2025-04-25
 */
@Data
@TableName("emergency_call")
@Schema(description = "紧急呼叫记录表")
public class EmergencyCall implements Serializable {

    /**
     * 序列化版本ID
     */
    private static final long serialVersionUID = 1L;

    /**
     * 记录ID，自增主键
     */
    @Schema(description = "记录ID")
    @TableId(value = "id", type = IdType.AUTO)
    private Long id;

    /**
     * 发起呼叫的用户openid，关联user表
     */
    @Schema(description = "用户openid")
    @TableField("user_id")
    private String userId;

    /**
     * 呼叫发生位置的经纬度坐标，格式为"经度,纬度"，如"116.404,39.915"
     */
    @Schema(description = "经纬度(如116.404,39.915)")
    @TableField("location")
    private String location;

    /**
     * 呼叫处理状态：0-未处理，1-已处理
     * 未处理状态下系统会持续通知紧急联系人
     */
    @Schema(description = "状态(0未处理，1已处理)")
    @TableField("status")
    private Byte status;

    /**
     * 记录创建时间，即呼叫发起时间
     */
    @Schema(description = "创建时间")
    @TableField("create_time")
    private LocalDateTime createTime;

    /**
     * 记录更新时间，如状态变更的时间
     */
    @Schema(description = "更新时间")
    @TableField("update_time")
    private LocalDateTime updateTime;

    /**
     * 逻辑删除标记，0表示未删除，1表示已删除
     */
    @Schema(description = "逻辑删除标记")
    @TableField("is_deleted")
    @TableLogic
    private Boolean isDeleted;
}
